工控网首页
>

应用设计

>

多功能USB设备的结构设计研究

多功能USB设备的结构设计研究

2010/4/23 15:13:00
  在USB2.0规范的基础上,分析了USB描述符结构,提出了多功能USB设备的结构模型,总结出设计多功能USB设备结构的两种基本方法。
关键词:通用串行总线,复合设备,组合设备,多功能

1
 引 言
  作为计算机的外部设备接口,USB接口已得到广泛应用。多功能USB设备是一种复杂的USB设备,它虽然只有一个USB接口,但是却具有实现多种类型设备的功能。具有多功能USB的设备被逐渐地应用起来,常见的设备有带鼠标的USB键盘、带话筒的USB摄像头等。因此,研究多功能USB设备的结构设计十分必要。
  2002年4月27日,康柏、惠普、英特尔、朗讯、微软、NEC和菲利浦等数家公司联合修订了《UniversalSerial Bus Specification Revision 2.0》(这里简称USB2.0规范),本文的研究就是在这个规范的基础上进行的。
2
 USB设备的设计原则
  在USB系统中,USB主机(host)扮演主控(master)角色。除了设备的远程唤醒(remote wakeup)功能外,USB设备不会是事件的发起者,设备做到的只是响应主机的请求。图1所示是USB通信的请求响应模型。
  USB采用这种以主机为中心的模型的原因是节省花费。通信中应尽量将主机端智能化一些,使设备端简单一些,这样,才能降低计算机外围设备的花费。因此,在设计USB设备,特别是设计多功能USB设备时,应使USB设备端处理通信时尽量简单。
3
 USB规范中的几种重要描述符
  在列举过程(enumeration process)中,主机使用控制传输方式从设备请求描述符。描述符包含了设备的基本信息。主要的描述符有:设备描述符(devicedescriptor)、配置描述符(configuration descriptor)、接口描述符(interface descriptor)以及端点描述符(endpoint descriptor)。
  一个USB设备对应一个设备描述符。一个USB设备可以有一个或多个配置,但在一个时刻内,只有一个配置是有效的(one ata time)。每个配置有一个或多个接口,只要配置有效,其所有的接口都是有效的(concurrently active)。每个接口可有多个端点,一个端点(除端点0外)不可以在一个配置下的多个接口间共享,但可以在不同配置下的接口间共享。端点是一个USB设备的一个唯一的可寻址部分,用来作为主机和设备之间通信流的信息源或接收器。接口是端点的集合,是设备实现某种功能的最小载体。它们之间的结构见图2。图2所示是USB描述符树。
4 多功能USB设备的结构模型
  多功能USB设备通常是通过单个或多个USB控制器(USBcontroller)连接不同类型的设备来实现的。当然,将不同类型的设备功能集成到USB控制器中去,来实现多功能USB设备也是可以的,因为USB规范讨论的是USB主机与USB控制器(或者集线器)之间的通信协议,不涉及USB控制器与不同类型设备(或芯片)的通信协议问题。因为用两个设备实现多功能的USB设备与用多个设备来实现多功能的USB设备的原理相同,所以,本文以两个设备为例来说明多功能的USB设备的设计方法和结构模型。因此,可以把多功能的USB设备抽象成如图3的结构(不同类型设备用A和B类设备表示)。
5 多功能USB设备的设计需要解决两个主要问题
  多功能设备结构模型(数据流)图如图3所示,多功能USB设备的设计需要解决两个主要问题:
  首先需要确定USB主机与A设备和B设备如何通信的问题(多功能USB设备的外部通信问题)。包含的问题有:设计是采用单个USB控制器还是多个USB控制器,其整体的结构应如何设计;(2)是否采用USB的标准设备类(涉及USB设备的驱动能否被操作系统自动加载的问题)。
  其次要解决USB控制器如何处理USB主机与A设备和B设备间的通信问题(多功能USB设备的内部通信问题)。包含的问题有:如何实现USB主机和A设备间的数据流与USB主机和B设备间的数据流区分问题;选用何种控制器芯片能最大限度地支持与A设备之间接口的连接和B设备之间接口的连接。
6
 USB结构设计思路
  总体说来,USB设备有两种基本的设计方法:采用USB复合设备(compound device)的方法和采用USB组合设备(composite device)的方法。
6
.1 复合设备设计方法
6.1.1 复合设备方法的特点
  复合设备方法是采用三个USB控制器芯片,其中一个为USB集线器芯片,另外是连接设备A的USB控制器芯片和连接设备B的USB控制器芯片。该方法的实质是将两种功能独立的USB设备通过内部的USB集线器封装在一起成为USB多功能设备。复合设备中的每一个USB设备模块和内部的USB集线器都有自己独立的设备地址。复合设备在内部采用多个USB控制器的方法,简单地解决了多功能USB设备与USB主机通信时内部数据流(USB主机与设备A的数据流和USB主机与设备B的数据流)的区分问题。该方法结构清晰,复合设备结构模型(数据流)如图4所示。
  复合设备结构中,USB控制器A和B的设备描述符中定义了各自的设备类代码。如设备类代码是USB标准的设备类代码,USB主机与USB控制器A或B的通信按照相应的USB设备类规范进行。如果是用户自定义的设备类代码,则USB主机与USB控制器A或B的通信按照用户自定义的协议进行。
6.1.2 复合设备方法可实现性的分析
  开发过程。采用此方法开发多功能USB设备时,其开发过程同开发两种不同类型的USB设备A和B相同。
  芯片选型。选择USB控制器A和B时,可分开考虑,芯片选型比较容易,编程调试也可分开进行。
  驱动程序。如USB主机与USB控制器间的通信遵循USB标准的设备类规范的要求,Windows和Linux等常用操作系统可自动加载驱动程序。
  总体来讲,采用复合设备方法开发多功能USB设备难度较低。
6
.2 组合设备设计方法
6.2.1 组合设备方法的特点
  USB组合设备(composite device)是指具有多个接口且接口间相互独立的USB设备。一个USB组合设备只有一个设备地址。可以将不同的功能与不同的接口对应,来开发多功能USB设备。
  组合设备采用一个USB控制芯片,同时接A和B设备(或芯片)。主机可同时与A和B芯片通信。组合设备结构模型(数据流)如图5所示。
6.2.2 组合设备的描述符结构
  以两接口的组合设备为例,如图6所示,来说明组合设备的描述符结构:一个设备描述符下有一个配置描述符;一个配置描述符下有两个接口描述符;每个接口描述符下有多个端点描述符;在接口描述符中设置子设备类型;除两个0端点(包括输入in和输出out)外,其它的端点在不同接口间不能共享。
  在每个接口描述符中,可以定义相应的子类代码。如接口描述符中子类代码是USB标准的设备类代码,则USB主机与USB控制器这个接口的通信(实际上是与这个接口中的端点通信)应按照相应的USB设备类规范进行;如果是用户自定义的设备类代码,则USB主机与USB控制器这个接口的通信按照用户自定义的协议进行。
投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机